/**
 * @desc 三方支付
 * @author Jafeney
 * @detetime 2016-11-08
 **/

//import Alipay from 'react-native-yunpeng-alipay';
import * as types from './actionTypes';
import Util from '../common/utils';

import Alipay from 'react-native-alipay';

export let alipay = (data) => {

    let url = global.U + '/api/uc/tc/ticketOrderSubsidyService/createOrder';

    //let url1 = 'http://pay.juyouhx.com/payCenter/callback/appalipayStr';
    let url1 = global.U + '/Api/Api/aliPay';

    return dispatch => {

        // 请求轮播数据
        dispatch(startAlipay());


        Util.post(url, data, (response) => {
            console.log('response');
            console.log(response);
            //dispatch(receiveAlipay(response.data));
            let ppp = 'orderid=' + response.data + '&type=1&extra_param=99&wxid=1';
            //Util.get(url1+ '?appcode=' + response.data, '', (response1) => {
            Util.get(url1+ '?' + ppp, '', (response1) => {
              console.log('url111111');
              console.log(response1);
              //dispatch(receiveAlipay(response.data));
              Alipay.pay(response1.result).then(function(data1){
                console.log('data111111111');
                console.log(data1);
                if (data1.length && data1[0].resultStatus == '9000' ) {
                    dispatch(receiveAlipay(data1));
                }else{
                    dispatch(receiveAlipay({}));
                }
              }, function (err) {
                console.log('err2222222');
                console.log(err);
                  dispatch(receiveAlipay({}));
              });

          }, (error1) => {
              console.log('err111');
              console.log(error1);
              console.log('Fetch create order111111  error: ' + error1);
              dispatch(receiveAlipay({}));
          });

        }, (error) => {
            console.log('err');
            console.log(error);
            console.log('Fetch create order  error: ' + error);
            dispatch(receiveAlipay({}));
        });
    }
};

export let startAlipay = () => {
  return {
    'type' : types.START_ALIPAY,
  }
};

export let receiveAlipay = (alipay_res) => {
  return {
    'type' : types.RECEIVE_ALIPAY,
    'alipay_res' : alipay_res
  }
};




// import * as CONFIG from '../config'

// export function alipay(opt) {
//   return (dispatch) => {
//     const uri = `http://${ CONFIG.API_URI }/alipay/pay`;  /*支付接口*/
//     const headers = {
//       ...CONFIG.HEADERS,
//       Authorization: opt.token
//     };
//     /*调用支付接口*/
//     fetch(uri, {method: 'POST', headers: headers, body: JSON.stringify(opt.body)})
//       .then((response) => {
//         if (response.status === 200) {
//           return response.json()
//         } else {
//           return {code: response.status}
//         }
//       })
//       .then((data) => {
//         if (String(data.code) == '0') {
//           /*打开支付宝进行支付*/
//           Alipay.pay(data.result).then((data) => {
//             if (data.length && data[0].resultStatus) {
//               /*处理支付结果*/
//               switch (data[0].resultStatus) {
//                  case "9000":
//                    opt.success && opt.success(data)
//                    break;
//                  case "8000":
//                    opt.fail && opt.fail('支付结果未知,请查询订单状态')
//                    break;
//                  case "4000":
//                    opt.fail && opt.fail('订单支付失败')
//                    break;
//                  case "5000":
//                    opt.fail && opt.fail('重复请求')
//                    break;
//                  case "6001":
//                    opt.fail && opt.fail('用户中途取消')
//                    break;
//                  case "6002":
//                    opt.fail && opt.fail('网络连接出错')
//                    break;
//                  case "6004":
//                    opt.fail && opt.fail('支付结果未知,请查询订单状态')
//                    break;
//                  default:
//                    opt.fail && opt.fail('其他失败原因')
//                    break;
//                }
//              } else {
//                opt.fail && opt.fail('其他失败原因')
//              }
//            }, (err) => {
//              opt.fail && opt.fail('支付失败，请重新支付')
//            }
//          )
//        } else {
//          opt.error && opt.error('支付参数错误')
//        }
//     })
//   }
// }